Before I get into my request I just wanna say this extension is absolutely amazing and I can't imagine how I used to play this game without it :)
This only applies in randbats but I don't think there's currently a way to make calcs with an enemy zoroark if it still has its illusion intact. Showdex just considers zoroark as the pokemon it's disguised as. Obviously you can't just make the app instantly identify zoroarks for competitve reasons but it'd be nice if there was a way to just make zoroark calcs at any time.
This situation happens decently often though I'd understand if it isn't something that high up on the priority list.
Thanks for the kind words! c:
Ah ya, iirc, someone requested this before, but it looked to be a pain-in-the-ass since Calcdex's syncing mechanism is a bit finicky (Pokémon don't have consistent IDs in the data layer, so there's a hacky workaround to inject a constant, consistent ID for each Pokémon created by the Showdown client), so wasn't something we could implement real quick.
For those who are curious, when
Zoroark is copying another Pokémon from its
Illusion, the client (in the data layer that the Calcdex directly syncs from) only reports it if its
your Zoroark. Otherwise (for your opponent's side), the client will initialize a new Pokémon if the copied Pokémon wasn't revealed before, or pretend like that previously revealed Pokémon is out (i.e., you as a player have no idea about the
Zoroark, even in the data layer, which is obviously necessary for competitive integrity). When
Illusion ends, the client will either replace the prior initialized Pokémon or add a new Pokémon (if it copied a prior revealed Pokémon) as the revealed
Zoroark. Speaking of which, there were old bugs in the Calcdex that caused a player to have 7 Pokémon w/ 2 of them being duplicates (but would clip at 6, so the
Zoroark in the 7th position wouldn't be accessible), but that's been long patched now (thankfully ...
knock on Sudowoodo).
But now that I'm thinking about it again, I think what we can do is allow you to "add" a temporary Pokémon (not just
Zoroark, to cover all bases) if the player has any empty slots (e.g., not all their Pokémon have been revealed yet), but only in Randoms. "Add" is in quotes cause as soon as a new Pokémon is detected by the syncing mechanism (e.g., it's been revealed in battle), we can either (a) replace the closest matching "added" Pokémon with the revealed one (as to preserve whatever changes you may have made for unrevealed properties, like its ability or item), or (b) yeet one of your "added" Pokémon since there was no close match.
So for instance, imagine in a Randoms battle, your opponent has 5 of 6 Pokémon revealed (with their last being a
Zoroark), but if you know this, you can "add" the 6th Pokémon to be
Zoroark. Once its
Illusion is revealed and
Zoroark is reported by the client, we'll attach a generated ID to both your added
Zoroark and the client-reported one to enable the normal syncing behavior. On the other hand, if you didn't know that and you "added" a random Pokémon, once
Zoroark's
Illusion is revealed, that random Pokémon you added will be completely replaced with the client-revealed
Zoroark.
Hope that makes some bit of sense haha. Let me know if this is something you'd be interested in!
Edit: I meant Illusion, not Imposter, sorry.